package com.xuesheng.controller.sys;
import com.xuesheng.entity.Roles;
import com.xuesheng.qpage.QPage;
import com.xuesheng.service.IRolesService;
import com.xuesheng.util.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author lxp
 * @since 2022-05-10
 */
@Controller
@RequestMapping("/sys/role")
public class RolesController {

    /**
     * 路由地址
     */
    public String prefix = "/view/admin/role";

    /**
     * 角色业务层
     */
    @Autowired
    private IRolesService sysRoleService;

    /**
     * 进入角色管理页面
     * @return
     */
    @RequestMapping("/index")
    public String index(){
        return prefix+"/index";
    }


    /**
     * 获取所有的角色列表
     * @return
     */
    @RequestMapping("/list")
    @ResponseBody
    public Result getList(QPage qPage, Roles roles) {
        return Result.reOk("查询成功",this.sysRoleService.getPageList(qPage,roles));
    }


    /**
     * 进入新增角色页面
     * @return
     */
    @RequestMapping("/add")
    public String add(){
        return prefix+"/add";
    }

    /**
     * 新增角色保存
     * @return
     */
    @RequestMapping("/saveRole")
    @ResponseBody
    public Result saveRole(Roles role) {
        return this.sysRoleService.saveRole(role);
    }

    /**
     * 进入编辑角色页面
     * @return
     */
    @RequestMapping("/edit")
    public String edit(){
        return prefix+"/edit";
    }

    /**
     * 根据角色ID获取角色信息
     * @param roleid
     * @return
     */
    @RequestMapping("/getRoleById")
    @ResponseBody
    public Result getRoleById(Integer roleid) {
        return Result.reOk("查询成功",this.sysRoleService.getRoleById(roleid));
    }

    /**
     * 编辑角色保存
     * @return
     */
    @RequestMapping("/updateRole")
    @ResponseBody
    public Result updateRole(Roles role) {
        return this.sysRoleService.updateRole(role);
    }


    /**
     * 进入角色菜单管理页面
     * @return
     */
    @RequestMapping("/roleMenu")
    public String roleMenu(){
        return prefix+"/rolemenu";
    }

    /**
     * 根据角色ID获取已经分配的菜单ID
     * @return
     */
    @RequestMapping("/getMenuByRoleId")
    @ResponseBody
    public Result getMenuByRoleId(Integer roleid) {
        return Result.reOk("查询成功",this.sysRoleService.getMenuByRoleId(roleid));
    }

    /**
     * 根据角色ID修改当前拥有的菜单结构
     * @return
     */
    @RequestMapping("/updateMenuByRoleId")
    @ResponseBody
    public Result updateMenuByRoleId(String menuids,Integer roleid) {
        return this.sysRoleService.updateMenuByRoleId(menuids,roleid);
    }


}
